home *** CD-ROM | disk | FTP | other *** search
- package opera;
-
- import java.applet.Applet;
- import java.applet.AppletContext;
- import java.applet.AudioClip;
- import java.awt.Image;
- import java.awt.Toolkit;
- import java.io.IOException;
- import java.net.URL;
- import java.security.AllPermission;
- import java.security.Permission;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
- import sun.applet.AppletAudioClip;
- import sun.awt.image.URLImageSource;
-
- public class PluginContext implements AppletContext {
- protected static Object opera_mutex = new Object();
- private Hashtable panels = new Hashtable();
- public int document_ptr = 0;
- private int nextInstance = 0;
- private PluginClassLoader loader = null;
-
- public PluginContext(int var1) {
- this.document_ptr = var1;
- }
-
- public Applet getApplet(String var1) {
- var1 = var1.toLowerCase();
- Hashtable var3 = this.panels;
- Enumeration var2;
- synchronized(var3) {
- var2 = this.panels.elements();
- }
-
- while(var2.hasMoreElements()) {
- PluginPanel var4 = (PluginPanel)var2.nextElement();
- String var5 = var4.getParameter("name");
- if (var5 != null) {
- var5 = var5.toLowerCase();
- }
-
- if (var1.equals(var5)) {
- return var4.getApplet();
- }
- }
-
- return null;
- }
-
- public Enumeration getApplets() {
- Vector var1 = new Vector();
- Hashtable var3 = this.panels;
- Enumeration var2;
- synchronized(var3) {
- var2 = this.panels.elements();
- }
-
- while(var2.hasMoreElements()) {
- var1.addElement(((PluginPanel)var2.nextElement()).getApplet());
- }
-
- return var1.elements();
- }
-
- public AudioClip getAudioClip(URL var1) {
- checkConnect(var1);
- AppletAudioClip var2 = new AppletAudioClip(var1);
- return var2;
- }
-
- public Image getImage(URL var1) {
- Image var2 = Toolkit.getDefaultToolkit().createImage(new URLImageSource(var1));
- return var2;
- }
-
- public void showDocument(URL var1) {
- this.showDocument(var1, "_self");
- }
-
- public void showDocument(URL var1, String var2) {
- Object var3 = opera_mutex;
- synchronized(var3) {
- String var4 = var1.toString();
- this.showDocument(var4, var2);
- }
- }
-
- private native void showDocument(String var1, String var2);
-
- public native void showStatus(String var1);
-
- public static void init(String[] var0) throws SecurityException {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkPermission(new AllPermission());
- }
-
- for(int var2 = 0; var2 < var0.length / 2; ++var2) {
- System.setProperty(var0[var2 * 2], var0[var2 * 2 + 1]);
- }
-
- URL.setURLStreamHandlerFactory(new StreamHandlerFactory());
- }
-
- public int newPanel(String[] var1, String[] var2, String[] var3, String[] var4, String var5) {
- try {
- Hashtable var6 = new Hashtable();
-
- for(int var7 = 0; var7 < var3.length; ++var7) {
- var6.put(var3[var7].toLowerCase(), var4[var7]);
- }
-
- Hashtable var8 = new Hashtable();
-
- for(int var9 = 0; var9 < var1.length; ++var9) {
- var8.put(var1[var9].toLowerCase(), var2[var9]);
- }
-
- PluginPanel var10 = new PluginPanel(this, var8, var6, new URL(var5));
- Hashtable var11 = this.panels;
- synchronized(var11) {
- this.panels.put(new Integer(this.nextInstance), var10);
- int var12 = this.nextInstance++;
- return var12;
- }
- } catch (Exception var15) {
- ((Throwable)var15).printStackTrace(System.err);
- return -1;
- }
- }
-
- void destroyPanel(int var1) {
- try {
- PluginPanel var2 = (PluginPanel)this.panels.get(new Integer(var1));
- if (var2 != null) {
- var2.destroyApplet();
- this.panels.remove(new Integer(var1));
- }
-
- if (this.panels.size() == 0) {
- PluginContextManager.deleteContext(this);
- }
- } catch (Exception var3) {
- ((Throwable)var3).printStackTrace(System.err);
- }
-
- }
-
- public PluginPanel getPanel(int var1) {
- return (PluginPanel)this.panels.get(new Integer(var1));
- }
-
- public native int getJSWindow();
-
- private static void checkConnect(URL var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- try {
- Permission var2 = var0.openConnection().getPermission();
- if (var2 != null) {
- var1.checkPermission(var2);
- } else {
- var1.checkConnect(var0.getHost(), var0.getPort());
- }
- } catch (IOException var3) {
- var1.checkConnect(var0.getHost(), var0.getPort());
- }
- }
-
- }
-
- protected void setClassLoader(PluginClassLoader var1) {
- if (this.loader == null) {
- this.loader = var1;
- }
-
- }
-
- protected void cleanup() {
- if (this.loader != null) {
- ThreadGroup var1 = this.loader.getThreadGroup();
- this.loader = null;
- }
-
- }
-
- public int getDocumentPtr() {
- return this.document_ptr;
- }
- }
-